home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / src / Move16v2.readme < prev    next >
Encoding:
Text File  |  1993-10-15  |  1.8 KB  |  63 lines

  1. Short: Src/executable for 040 amigas, shows use of Move16 instruction
  2.  
  3. Recent: This is the 2nd release, the 1st release generated extra instcn.
  4.  
  5. The 1st release added an extra dc.w 0 to the move16 opcode generated
  6. by the assembler, this is incorrect, it created the following:
  7.  
  8. move16 (a0)+,(a1)+
  9. ori.b #0,d0
  10.  
  11. Basically it was harmless but was generating an extra instruction
  12. between move16;s this release fixes that by generating the
  13. correct opcode in a macro
  14.  
  15. For use with SAS/C 6.3
  16. 2 source files, Move16.c and Move16_a.asm
  17.  
  18.  
  19. This archive contains source and executable which demonstrates
  20. the use of the 68040 Move16 instruction on an 040 amiga.
  21. I am not sure if this instruction is safe for all amigas,
  22. but it is the fastest way to copy mem blocks on an 040
  23. machine.
  24.  
  25. You must align the src and dest on 16 byte boundaries, and
  26. on some 040's you need a NOP before each block
  27. of MOVE16's and on some 040's a page fault during a move16
  28. can cause problems, but on my A4000/040 It seems to work
  29. just fine.
  30.  
  31. If anyone knows of any problems with the Move16 instruction
  32. on the Amiga, or would like to email me the
  33. times for their systems, send me internet mail at
  34.  
  35. uzun@crash.cts.com
  36. or on bix as 
  37. ruzun
  38.  
  39. This pgm has 2 copy block loops, one uses Move16's the
  40. other longword moves, it reports the time to execute
  41. each block for each mem type.
  42.  
  43. SAS/C 6.3 ASM BUG,
  44. the SAS/C Assembler cannot correctly generate the opcode
  45. for a move16 (a0)+,(a1)+, 
  46. The asm file uses a macro to generate the correct
  47. opcode for this instruction.
  48.  
  49. Results on my A4000/040
  50.  
  51. **FAST TO FAST**
  52. MoveMem   = 2.2000 secs
  53. MoveMem16 = 1.5000 secs
  54. **Fast to CHIP**
  55. MoveMem   = 3.3000 secs
  56. MoveMem16 = 3.2800 secs
  57. **CHIP to Fast**
  58. MoveMem   = 4.0600 secs
  59. MoveMem16 = 3.2800 secs
  60. **CHIP to CHIP**
  61. MoveMem   = 5.1200 secs
  62. MoveMem16 = 5.1200 secs
  63.